﻿using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation;

namespace TenantManagement;

public abstract class TenantCreateOrUpdateParameterBase : ExtensibleObject
{
    [Required]
    [DynamicStringLength(typeof(TenantConsts), nameof(TenantConsts.MaxNameLength))]
    [Display(Name = "TenantName")]
    public string Name { get; set; }

    [Required]
    [DynamicStringLength(typeof(TenantConsts), nameof(TenantConsts.MaxDisplayNameLength))]
    [Display(Name = "TenantDisplayName")]
    public string DisplayName { get; set; }

    [DynamicMaxLength(typeof(TenantConsts), nameof(TenantConsts.MaxFaviconLength))]
    [Display(Name = "TenantFavicon")]
    public virtual string Favicon { get; set; }

    [DynamicMaxLength(typeof(TenantConsts), nameof(TenantConsts.MaxLogoLength))]
    [Display(Name = "TenantLogo")]
    public virtual string Logo { get; set; }

    [DynamicMaxLength(typeof(TenantConsts), nameof(TenantConsts.MaxLargeLogoLength))]
    [Display(Name = "TenantLargeLogo")]
    public virtual string LargeLogo { get; set; }

    [Display(Name = "TenantIsEnabled")]
    public virtual bool IsEnabled { get; set; }

    [Display(Name = "TenantRemark")]
    public virtual string Remark { get; set; }

    public TenantCreateOrUpdateParameterBase() : base(false)
    {

    }
}
